In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
Po ogromnej klapie, jaką okazały się Komputery Trzybitowe (KTB), naukowcy Bajtlandii mają nowy wspaniały pomysł: Kwantowe Komputery Trzybitowe (KKTB). Komputery KTB należy potraktować jako zwyczajną rozgrzewkę przed prawdziwym wyzwaniem - KKTB.
Przewiduje się, że nowe komputery kwantowe będą miały niespotykaną dotąd moc, bla, bla, bla, wiele głupawych problemów na olimpiady, bla, bla, bla. Do rzeczy.
Tak jak poprzednio, podstawową trudnością jest inicjalizacja pamięci. W przypadku komputerów kwantowych problemy są jednak zupełnie innej natury. Wszystkie operacje wykonywane na elementach KKTB mają efekty uboczne, tzn. wpływają na inne elementy komputera. Neutralizowanie tych efektów jest bardzo kosztowne, dlatego inicjalizacja pamięci bit po bicie nie jest możliwa. Istnieje jednak inne podejście do problemu, a mianowicie sterowane impulsy o średnim zasięgu (SISZ). Naukowcy potrafią wygenerować impulsy, których wpływ na każdy z bitów pamięci KKTB może być dokładnie obliczony. Impulsy te można emitować bardzo szybko, więc użycie nawet dużej liczby impulsów jest bardziej opłacalne niż inicjalizacja pamięci bit po bicie. Powstaje pytanie, czy da się wyzerować całą pamięc przy pomocy SISZ. Twoim zadaniem jest napisanie programu, który odpowie na to pytanie.
Bardziej formalnie, każdy bit pamięci może być w jednym z
stanów ponumerowanych
. Impuls SISZ oddziaływuje na
wszystkie bity w ten sam sposób, a zatem można go traktować jak
funkcję
. Na
przykład,
oznacza, że po wyemitowaniu impulsu
,
wszystkie bity będące w stanie
przejdą w stan
. Naukowcy
potrafią emitować pewną liczbę impulsów
. Twoim
zadaniem jest stwierdzić, czy istnieje ciąg impulsów, który
sprowadza wszystkie bity do stanu
(zeruje je), niezależnie od
ich stanu początkowego.
Napisz program, który:
Każdy test składa się z pewnej liczby zestawów
danych. Pierwszy wiersz standardowego wejścia zawiera pojedynczą
liczbę naturalną ,
, liczbę zestawów
danych. W dalszej części wejścia znajdują się zestawy
danych. Opis pojedynczego zestawu danych rozpoczyna się wierszem
zawierającym dwie liczby naturalne
,
, (
,
), gdzie
jest liczbą różnych stanów bitu, a
liczbą dostępnych impulsów. Kolejnych
wierszy zawiera opisy
impulsów,
-ty wiersz zawiera opis
-tego impulsu. Opis impulsu
jest ciągiem liczb całkowitych
,
opisujących wpływ
na stan każdego z bitów pamięci. Liczby
te są pooddzielane pojedynczymi odstępami.
Na standardowe wyjście należy wypisać wierszy, po jednym
dla każdego zestawu danych.
-ty wiersz powinien składać się z
pojedynczego słowa TAK, jeśli wyzerowanie pamięci jest dla
-tego testu możliwe, lub NIE w przeciwnym przypadku.
Dla danych wejściowych:
2 5 2 1 2 3 4 0 2 3 4 0 1 5 2 1 2 3 4 0 3 3 4 0 1
poprawną odpowiedzią jest:
NIE TAK
Zapożyczenie z CPSPC: Marcin Mucha.